Storage of financial and other information in solid-state devices such as semiconductor memory cards is growing more and more prevalent. Large quantities of data representing customer or merchant information, transaction histories, or stored value may be placed on a card and given to the customer. The information may be completely self-contained on the card, allowing the information to be read directly from the card. This approach is different from the use of magnetic cards, which typically contain only an account number or other identifying information, which is used as an index to retrieve the customer information from a database. A semiconductor memory card typically stores data in solid-state memory such as an EPROM or EEPROM. The card is placed in a card writer which provides information to the card in a numerical format and transfers the information through ports provided on the card. The card includes a microcomputer, which receives the information from the reader, processes the information, and stores the information in the memory. Similarly, whenever it is desired to use the information stored on the card, the microcomputer retrieves the information from memory, processes the information, and transfers the information through the ports to an external device such as a card reader. Because high-capacity memory devices are widely available, it is possible to store large quantities of data on such a card, making it versatile and convenient.
After information is written to the semiconductor memory card, it can be given to a customer so that the customer can present the card for reading and writing of data as needed. For example, a cash card may be loaded with information representing cash credits. The card is given to the customer and presented to a merchant or bank whenever a debit is to be made. Upon presentation of the card, the merchant or bank places the card in a reader/writer, reads the balance on the card, makes an appropriate subtraction, and writes the new balance to the card. The debit can be made without a need to retrieve any information other than the information on the card itself.
If a semiconductor memory card is to be given to a customer, security is vital. A customer in possession of a semiconductor memory card has long-term, unsupervised access to the card, and has the opportunity to attack the card at leisure in order to attempt to store unauthorized information on the card or to recover secret information from the card. It is possible for a skilled attacker to retrieve numerical information from a semiconductor memory card through probing of the internal components of the device, or through other unauthorized means. If card security is provided only through numerical means, such as numerical authenticators or cryptoprocessing keys, it is possible to retrieve the information from the card and to obtain information intended to be secret, or to create a counterfeit card which contains information duplicated from a legitimate card.
Mediametric techniques offer considerable advantages in providing data security. These mediametric techniques provide security through the use of data related to physical characteristics of the storage media. Mediametric data is data relating to physical properties of a medium in or on which data that is to be secured or authenticated is stored. As is apparent from the further discussion below, a particular medium on which data is stored frequently has properties that can be measured precisely in order to identify the medium, or to identify an instance of storage of genuine data in or on the medium. In addition, an instance of storage of data in or on the medium creates properties characterizing the particular instance of storage of data, and these properties can be measured precisely. However, certain specific properties of a medium frequently cannot be duplicated. If these are measured at the time of storage of data in or on a medium and the data relating to these properties are used for security or authentication, any attempted counterfeiting of a medium or alteration of data on a medium will fail because the properties of the authentic medium or instance of data storage will not be duplicated. Mediametric properties are these properties of a medium, or an instance of writing data to a medium, that can be measured but are difficult to duplicate and therefore are suitable for use in securing data. Mediametric data are data derived from mediametric properties of a medium or an instance of writing data to a medium and useful for authenticating or securing the medium or an instance of writing of data to the medium.
Solid state media possess characteristics which are impossible to duplicate precisely, but which can be precisely measured. These include, for example, variations in the remnant charge of EEPROM's, or variations in row/column addressing circuits. These and other characteristics have been used for authentication. A numerical representation, or fingerprint, of authenticating characteristics is created and stored. When the card is presented, the authenticating characteristics are measured, and a fingerprint is created and compared against the original fingerprint. Such techniques are described in detail in Fernandez U.S. Pat. No. 5,644,636, which is assigned to the assignee of the present invention and incorporated in its entirety herein by reference.
One advantage of such mediametric techniques is that some solid-state devices possess characteristics which will be altered by any tampering with the device. This may be true even when tampering with the device will succeed in revealing the numerical data stored in the device.
For example, it is possible to disassemble an EPROM or EEPROM memory and determine the numerical contents of memory cells through the use of a probe. However, it is not possible to read the precise levels of charges through such probing, as the use of the probe will alter the levels of the charges. It is possible for a memory to supply charge level data if suitable ports are supplied for the purpose, but if no external access to the ports is given, determination of the charge levels is difficult or impossible.
In systems of the prior art, mediametric techniques have been used for authentication and not to secure secret data. A prior-art mediametric card can be made secure against counterfeiting. For example, after a card is to be programmed with data, a “fingerprint” is generated, consisting of numerical representations of levels of trapped charges in selected memory cells. The fingerprint is then provided to an external device and stored. When the card is to be used again, the fingerprint is read from the card and compared against the stored fingerprint before the card is accepted as authentic.
In a typical approach of the prior art, data to be securely stored may be encrypted using numerical encryption techniques. If the encryption keys are stored in the memory in numerical form, they are vulnerable to unauthorized recovery. An attacker may simply probe the memory to extract numerical information from any desired location within the memory, in a search for the keys. Once the keys are identified, the attacker can simply decrypt the data.
There exists, therefore, a need for techniques for securing of secret data which provide enhanced resistance to attack.